<!doctype html>
<html class="no-js" lang="en, zh-CN" data-content_root="./">
  <head><meta charset="utf-8"/>
    <meta name="viewport" content="width=device-width,initial-scale=1"/>
    <meta name="color-scheme" content="light dark"><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Tutorial" href="tutorial/index.html" />

    <link rel="shortcut icon" href="_static/logo.ico"/><!-- Generated with Sphinx 7.3.6 and Furo 2024.01.29 -->
        <title>Javet 3.1.3 documentation</title>
      <link rel="stylesheet" type="text/css" href="_static/pygments.css?v=a746c00c" />
    <link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=135e06be" />
    <link rel="stylesheet" type="text/css" href="_static/tabs.css?v=4c969af8" />
    <link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?v=36a5483c" />
    <link rel="stylesheet" type="text/css" href="_static/css/custom.css?v=c2631171" />
    
    


<style>
  body {
    --color-code-background: #f8f8f8;
  --color-code-foreground: black;
  
  }
  @media not print {
    body[data-theme="dark"] {
      --color-code-background: #202020;
  --color-code-foreground: #d0d0d0;
  
    }
    @media (prefers-color-scheme: dark) {
      body:not([data-theme="light"]) {
        --color-code-background: #202020;
  --color-code-foreground: #d0d0d0;
  
      }
    }
  }
</style></head>
  <body>
    
    <script>
      document.body.dataset.theme = localStorage.getItem("theme") || "auto";
    </script>
    

<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
  <symbol id="svg-toc" viewBox="0 0 24 24">
    <title>Contents</title>
    <svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 1024 1024">
      <path d="M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM115.4 518.9L271.7 642c5.8 4.6 14.4.5 14.4-6.9V388.9c0-7.4-8.5-11.5-14.4-6.9L115.4 505.1a8.74 8.74 0 0 0 0 13.8z"/>
    </svg>
  </symbol>
  <symbol id="svg-menu" viewBox="0 0 24 24">
    <title>Menu</title>
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
      stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather-menu">
      <line x1="3" y1="12" x2="21" y2="12"></line>
      <line x1="3" y1="6" x2="21" y2="6"></line>
      <line x1="3" y1="18" x2="21" y2="18"></line>
    </svg>
  </symbol>
  <symbol id="svg-arrow-right" viewBox="0 0 24 24">
    <title>Expand</title>
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
      stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather-chevron-right">
      <polyline points="9 18 15 12 9 6"></polyline>
    </svg>
  </symbol>
  <symbol id="svg-sun" viewBox="0 0 24 24">
    <title>Light mode</title>
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
      stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="feather-sun">
      <circle cx="12" cy="12" r="5"></circle>
      <line x1="12" y1="1" x2="12" y2="3"></line>
      <line x1="12" y1="21" x2="12" y2="23"></line>
      <line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
      <line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
      <line x1="1" y1="12" x2="3" y2="12"></line>
      <line x1="21" y1="12" x2="23" y2="12"></line>
      <line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
      <line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
    </svg>
  </symbol>
  <symbol id="svg-moon" viewBox="0 0 24 24">
    <title>Dark mode</title>
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
      stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-moon">
      <path stroke="none" d="M0 0h24v24H0z" fill="none" />
      <path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
    </svg>
  </symbol>
  <symbol id="svg-sun-half" viewBox="0 0 24 24">
    <title>Auto light/dark mode</title>
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
      stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
      <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
      <circle cx="12" cy="12" r="9" />
      <path d="M13 12h5" />
      <path d="M13 15h4" />
      <path d="M13 18h1" />
      <path d="M13 9h4" />
      <path d="M13 6h1" />
    </svg>
  </symbol>
</svg>

<input type="checkbox" class="sidebar-toggle" name="__navigation" id="__navigation">
<input type="checkbox" class="sidebar-toggle" name="__toc" id="__toc">
<label class="overlay sidebar-overlay" for="__navigation">
  <div class="visually-hidden">Hide navigation sidebar</div>
</label>
<label class="overlay toc-overlay" for="__toc">
  <div class="visually-hidden">Hide table of contents sidebar</div>
</label>



<div class="page">
  <header class="mobile-header">
    <div class="header-left">
      <label class="nav-overlay-icon" for="__navigation">
        <div class="visually-hidden">Toggle site navigation sidebar</div>
        <i class="icon"><svg><use href="#svg-menu"></use></svg></i>
      </label>
    </div>
    <div class="header-center">
      <a href="#"><div class="brand">Javet 3.1.3 documentation</div></a>
    </div>
    <div class="header-right">
      <div class="theme-toggle-container theme-toggle-header">
        <button class="theme-toggle">
          <div class="visually-hidden">Toggle Light / Dark / Auto color theme</div>
          <svg class="theme-icon-when-auto"><use href="#svg-sun-half"></use></svg>
          <svg class="theme-icon-when-dark"><use href="#svg-moon"></use></svg>
          <svg class="theme-icon-when-light"><use href="#svg-sun"></use></svg>
        </button>
      </div>
      <label class="toc-overlay-icon toc-header-icon no-toc" for="__toc">
        <div class="visually-hidden">Toggle table of contents sidebar</div>
        <i class="icon"><svg><use href="#svg-toc"></use></svg></i>
      </label>
    </div>
  </header>
  <aside class="sidebar-drawer">
    <div class="sidebar-container">
      
      <div class="sidebar-sticky"><a class="sidebar-brand" href="#">
  
  <div class="sidebar-logo-container">
    <img class="sidebar-logo" src="_static/logo.png" alt="Logo"/>
  </div>
  
  <span class="sidebar-brand-text">Javet 3.1.3 documentation</span>
  
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
  <input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
  <input type="hidden" name="check_keywords" value="yes">
  <input type="hidden" name="area" value="default">
</form>
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
  <ul>
<li class="toctree-l1 has-children"><a class="reference internal" href="tutorial/index.html">Tutorial</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of Tutorial</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2 has-children"><a class="reference internal" href="tutorial/basic/index.html">Basic</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Basic</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l3"><a class="reference internal" href="tutorial/basic/installation.html">Installation</a></li>
<li class="toctree-l3"><a class="reference internal" href="tutorial/basic/hello_javet.html">Hello Javet</a></li>
<li class="toctree-l3"><a class="reference internal" href="tutorial/basic/javet_shell.html">Javet Shell</a></li>
<li class="toctree-l3"><a class="reference internal" href="tutorial/basic/interception.html">Interception</a></li>
<li class="toctree-l3"><a class="reference internal" href="tutorial/basic/engine_pool.html">Javet Engine Pool</a></li>
<li class="toctree-l3"><a class="reference internal" href="tutorial/basic/node_js_mode_and_v8_mode.html">Node.js Mode and V8 Mode</a></li>
<li class="toctree-l3"><a class="reference internal" href="tutorial/basic/spring_integration.html">Spring Integration</a></li>
<li class="toctree-l3"><a class="reference internal" href="tutorial/basic/polyfill.html">Polyfill</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="tutorial/advanced/index.html">Advanced</a><input class="toctree-checkbox" id="toctree-checkbox-3" name="toctree-checkbox-3" role="switch" type="checkbox"/><label for="toctree-checkbox-3"><div class="visually-hidden">Toggle navigation of Advanced</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l3"><a class="reference internal" href="tutorial/advanced/interact_with_node_js.html">Interact with Node.js</a></li>
<li class="toctree-l3"><a class="reference internal" href="tutorial/advanced/object_converter.html">Object Converter</a></li>
<li class="toctree-l3"><a class="reference internal" href="tutorial/advanced/java_and_javascript_interop.html">Java and JavaScript Interop</a></li>
<li class="toctree-l3"><a class="reference internal" href="tutorial/advanced/access_the_whole_jvm.html">Access the Whole JVM</a></li>
<li class="toctree-l3"><a class="reference internal" href="tutorial/advanced/expose_json_node_in_v8.html">Expose JsonNode in V8</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="tutorial/migration_guides/index.html">Migration Guides</a><input class="toctree-checkbox" id="toctree-checkbox-4" name="toctree-checkbox-4" role="switch" type="checkbox"/><label for="toctree-checkbox-4"><div class="visually-hidden">Toggle navigation of Migration Guides</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l3"><a class="reference internal" href="tutorial/migration_guides/migrate_from_j2v8.html">Migrate from J2V8</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="reference/index.html">Reference</a><input class="toctree-checkbox" id="toctree-checkbox-5" name="toctree-checkbox-5" role="switch" type="checkbox"/><label for="toctree-checkbox-5"><div class="visually-hidden">Toggle navigation of Reference</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="reference/javadoc/index.html">API Reference</a></li>
<li class="toctree-l2 has-children"><a class="reference internal" href="reference/v8_values/index.html">V8 Values</a><input class="toctree-checkbox" id="toctree-checkbox-6" name="toctree-checkbox-6" role="switch" type="checkbox"/><label for="toctree-checkbox-6"><div class="visually-hidden">Toggle navigation of V8 Values</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l3"><a class="reference internal" href="reference/v8_values/v8_collection.html">V8 Collection</a></li>
<li class="toctree-l3"><a class="reference internal" href="reference/v8_values/v8_function.html">V8 Function</a></li>
<li class="toctree-l3"><a class="reference internal" href="reference/v8_values/v8_promise.html">V8 Promise</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="reference/converters/index.html">Converters</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" role="switch" type="checkbox"/><label for="toctree-checkbox-7"><div class="visually-hidden">Toggle navigation of Converters</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l3"><a class="reference internal" href="reference/converters/primitive_converter.html">Primitive Converter</a></li>
<li class="toctree-l3"><a class="reference internal" href="reference/converters/object_converter.html">Object Converter</a></li>
<li class="toctree-l3"><a class="reference internal" href="reference/converters/proxy_converter.html">Proxy Converter</a></li>
<li class="toctree-l3"><a class="reference internal" href="reference/converters/bridge_converter.html">Bridge Converter</a></li>
<li class="toctree-l3"><a class="reference internal" href="reference/converters/custom_converter.html">Custom Converter</a></li>
<li class="toctree-l3"><a class="reference internal" href="reference/converters/proxy_plugins.html">Proxy Plugins</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="reference/resource_management/index.html">Resource Management</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" role="switch" type="checkbox"/><label for="toctree-checkbox-8"><div class="visually-hidden">Toggle navigation of Resource Management</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l3"><a class="reference internal" href="reference/resource_management/load_and_unload.html">Load and Unload</a></li>
<li class="toctree-l3"><a class="reference internal" href="reference/resource_management/lock.html">Know the Lock</a></li>
<li class="toctree-l3"><a class="reference internal" href="reference/resource_management/memory_management.html">Memory Management</a></li>
<li class="toctree-l3"><a class="reference internal" href="reference/resource_management/modularization.html">Modularization</a></li>
<li class="toctree-l3"><a class="reference internal" href="reference/resource_management/snapshot.html">Snapshot</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="reference/troubleshooting/index.html">Troubleshooting</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" role="switch" type="checkbox"/><label for="toctree-checkbox-9"><div class="visually-hidden">Toggle navigation of Troubleshooting</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l3"><a class="reference internal" href="reference/troubleshooting/error_codes.html">Error Codes</a></li>
<li class="toctree-l3"><a class="reference internal" href="reference/troubleshooting/logging.html">Logging</a></li>
<li class="toctree-l3"><a class="reference internal" href="reference/troubleshooting/termination.html">Termination</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="reference/tips/index.html">Tips</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" role="switch" type="checkbox"/><label for="toctree-checkbox-10"><div class="visually-hidden">Toggle navigation of Tips</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l3"><a class="reference internal" href="reference/tips/best_practices.html">Best Practices</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="reference/todo_list.html">TODO List</a></li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="release_notes/index.html">Release Notes</a><input class="toctree-checkbox" id="toctree-checkbox-11" name="toctree-checkbox-11" role="switch" type="checkbox"/><label for="toctree-checkbox-11"><div class="visually-hidden">Toggle navigation of Release Notes</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="release_notes/release_notes_3_1.html">Release Notes 3.1.x</a></li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="faq/index.html">FAQ</a><input class="toctree-checkbox" id="toctree-checkbox-12" name="toctree-checkbox-12" role="switch" type="checkbox"/><label for="toctree-checkbox-12"><div class="visually-hidden">Toggle navigation of FAQ</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2 has-children"><a class="reference internal" href="faq/background/index.html">Background</a><input class="toctree-checkbox" id="toctree-checkbox-13" name="toctree-checkbox-13" role="switch" type="checkbox"/><label for="toctree-checkbox-13"><div class="visually-hidden">Toggle navigation of Background</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l3"><a class="reference internal" href="faq/background/history_with_j2v8.html">History with J2V8</a></li>
<li class="toctree-l3"><a class="reference internal" href="faq/background/what_is_the_motivation.html">What is the Motivation?</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="faq/development/index.html">Development</a><input class="toctree-checkbox" id="toctree-checkbox-14" name="toctree-checkbox-14" role="switch" type="checkbox"/><label for="toctree-checkbox-14"><div class="visually-hidden">Toggle navigation of Development</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l3"><a class="reference internal" href="faq/development/can_native_image_be_supported.html">Can Native Image be Supported?</a></li>
<li class="toctree-l3"><a class="reference internal" href="faq/development/how_to_think_in_javet.html">How to Think in Javet?</a></li>
<li class="toctree-l3"><a class="reference internal" href="faq/development/where_are_es6_api_in_v8_mode.html">Where are ES6 API in V8 Mode?</a></li>
<li class="toctree-l3"><a class="reference internal" href="faq/development/where_are_the_examples.html">Where are the Examples?</a></li>
<li class="toctree-l3"><a class="reference internal" href="faq/development/why_is_the_inspector_disabled_in_node_js_mode.html">Why is the Inspector Disabled in Node.js Mode?</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="faq/environment/index.html">Environment</a><input class="toctree-checkbox" id="toctree-checkbox-15" name="toctree-checkbox-15" role="switch" type="checkbox"/><label for="toctree-checkbox-15"><div class="visually-hidden">Toggle navigation of Environment</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l3"><a class="reference internal" href="faq/environment/can_javet_support_legacy_linux.html">Can Javet Support Legacy Linux?</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="faq/troubleshooting/index.html">Troubleshooting</a><input class="toctree-checkbox" id="toctree-checkbox-16" name="toctree-checkbox-16" role="switch" type="checkbox"/><label for="toctree-checkbox-16"><div class="visually-hidden">Toggle navigation of Troubleshooting</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l3"><a class="reference internal" href="faq/troubleshooting/a_dynamic_link_library_dll_initialization_routine_failed.html">A dynamic link library (DLL) initialization routine failed</a></li>
<li class="toctree-l3"><a class="reference internal" href="faq/troubleshooting/can_i18n_be_supported.html">Can i18n be Supported?</a></li>
<li class="toctree-l3"><a class="reference internal" href="faq/troubleshooting/can_i_debug_javet_in_chrome_dev_tools.html">Can I Debug Javet in Chrome DevTools?</a></li>
<li class="toctree-l3"><a class="reference internal" href="faq/troubleshooting/sigsegv_at_createv8runtime_in_v8_mode_on_aws.html">SIGSEGV at createV8Runtime() in V8 Mode on AWS</a></li>
<li class="toctree-l3"><a class="reference internal" href="faq/troubleshooting/why_node_js_crashes_when_being_closed.html">Why Node.js Crashes When being Closed?</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="development/index.html">Development</a><input class="toctree-checkbox" id="toctree-checkbox-17" name="toctree-checkbox-17" role="switch" type="checkbox"/><label for="toctree-checkbox-17"><div class="visually-hidden">Toggle navigation of Development</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="development/tools.html">Development Tools</a></li>
<li class="toctree-l2 has-children"><a class="reference internal" href="development/build.html">Build Javet</a><input class="toctree-checkbox" id="toctree-checkbox-18" name="toctree-checkbox-18" role="switch" type="checkbox"/><label for="toctree-checkbox-18"><div class="visually-hidden">Toggle navigation of Build Javet</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l3"><a class="reference internal" href="development/build_javet_with_docker.html">Build Javet with Docker</a></li>
<li class="toctree-l3"><a class="reference internal" href="development/build_javet_from_scratch.html">Build Javet from Scratch</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="development/test.html">Test Javet</a></li>
<li class="toctree-l2"><a class="reference internal" href="development/design.html">Javet Design</a></li>
<li class="toctree-l2"><a class="reference internal" href="development/performance.html">Javet Performance</a></li>
<li class="toctree-l2"><a class="reference internal" href="development/debug_with_chrome_developer_tools.html">Debug with Chrome Developer Tools</a></li>
</ul>
</li>
</ul>

</div>
</div>

      </div>
      
    </div>
  </aside>
  <div class="main">
    <div class="content">
      <div class="article-container">
        <a href="#" class="back-to-top muted-link">
          <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
            <path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12z"></path>
          </svg>
          <span>Back to top</span>
        </a>
        <div class="content-icon-container">
          
<div class="theme-toggle-container theme-toggle-content">
            <button class="theme-toggle">
              <div class="visually-hidden">Toggle Light / Dark / Auto color theme</div>
              <svg class="theme-icon-when-auto"><use href="#svg-sun-half"></use></svg>
              <svg class="theme-icon-when-dark"><use href="#svg-moon"></use></svg>
              <svg class="theme-icon-when-light"><use href="#svg-sun"></use></svg>
            </button>
          </div>
          <label class="toc-overlay-icon toc-content-icon no-toc" for="__toc">
            <div class="visually-hidden">Toggle table of contents sidebar</div>
            <i class="icon"><svg><use href="#svg-toc"></use></svg></i>
          </label>
        </div>
        <article role="main">
          <section id="javet">
<h1>Javet<a class="headerlink" href="#javet" title="Link to this heading">¶</a></h1>
<p><a class="reference external" href="https://central.sonatype.com/search?q=g:com.caoccao.javet"><img alt="Maven Central" src="https://img.shields.io/maven-central/v/com.caoccao.javet/javet?style=for-the-badge" /></a> <a class="reference external" href="https://discord.gg/R4vvKU96gw"><img alt="Discord" src="https://img.shields.io/discord/870518906115211305?label=join%20our%20Discord&amp;style=for-the-badge" /></a> <a class="reference external" href="https://opencollective.com/javet"><img alt="Donate" src="https://img.shields.io/badge/Donate-green?style=for-the-badge" /></a></p>
<p><a class="reference external" href="https://github.com/caoccao/Javet/actions/workflows/linux_x86_64_build.yml"><img alt="Linux x86_64 Build" src="https://github.com/caoccao/Javet/actions/workflows/linux_x86_64_build.yml/badge.svg" /></a> <a class="reference external" href="https://github.com/caoccao/Javet/actions/workflows/macos_x86_64_build.yml"><img alt="MacOS x86_64 Build" src="https://github.com/caoccao/Javet/actions/workflows/macos_x86_64_build.yml/badge.svg" /></a> <a class="reference external" href="https://github.com/caoccao/Javet/actions/workflows/macos_arm64_build.yml"><img alt="MacOS arm64 Build" src="https://github.com/caoccao/Javet/actions/workflows/macos_arm64_build.yml/badge.svg" /></a> <a class="reference external" href="https://github.com/caoccao/Javet/actions/workflows/android_node_build.yml"><img alt="Android Node Build" src="https://github.com/caoccao/Javet/actions/workflows/android_node_build.yml/badge.svg" /></a> <a class="reference external" href="https://github.com/caoccao/Javet/actions/workflows/android_v8_build.yml"><img alt="Android V8 Build" src="https://github.com/caoccao/Javet/actions/workflows/android_v8_build.yml/badge.svg" /></a></p>
<p><a class="reference external" href="https://github.com/caoccao/Javet/">Javet</a> is Java + V8 (JAVa + V + EighT). It is an awesome way of embedding Node.js and V8 in Java.</p>
<p>If you like my work, please <strong>Star</strong> this project. And, you may follow me <a class="reference external" href="https://twitter.com/sjtucaocao">&#64;sjtucaocao</a>, or visit <a class="reference external" href="https://blog.caoccao.com/">https://blog.caoccao.com/</a> or <a class="reference external" href="https://caoccao.blogspot.com/">https://caoccao.blogspot.com/</a>. And the official support channel is at <a class="reference external" href="https://discord.gg/R4vvKU96gw">discord</a>.</p>
<p>💖 If you like my work, please <a class="reference external" href="https://opencollective.com/javet">donate</a> to support me. If you have a retired Mac OS (x86_64) device and are fine with mailing it to me, that will be great because I don't have such device to support the community. Thank you for supporting Javet.</p>
</section>
<section id="major-features">
<h1>Major Features<a class="headerlink" href="#major-features" title="Link to this heading">¶</a></h1>
<div class="table-wrapper docutils container">
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>CPU Arch</p></th>
<th class="head"><p>Android</p></th>
<th class="head"><p>Linux</p></th>
<th class="head"><p>MacOS</p></th>
<th class="head"><p>Windows</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>x86</p></td>
<td><p>✔️</p></td>
<td><p>❌</p></td>
<td><p>❌</p></td>
<td><p>❌</p></td>
</tr>
<tr class="row-odd"><td><p>x86_64</p></td>
<td><p>✔️</p></td>
<td><p>✔️</p></td>
<td><p>✔️</p></td>
<td><p>✔️</p></td>
</tr>
<tr class="row-even"><td><p>arm</p></td>
<td><p>✔️</p></td>
<td><p>❌</p></td>
<td><p>❌</p></td>
<td><p>❌</p></td>
</tr>
<tr class="row-odd"><td><p>arm64</p></td>
<td><p>✔️</p></td>
<td><p>✔️</p></td>
<td><p>✔️</p></td>
<td><p>❌</p></td>
</tr>
</tbody>
</table>
</div>
<ul class="simple">
<li><p>Node.js <code class="docutils literal notranslate"><span class="pre">v20.14.0</span></code> + V8 <code class="docutils literal notranslate"><span class="pre">v12.6.228.13</span></code></p></li>
<li><p>Dynamic switch between Node.js and V8 mode (<a class="reference external" href="https://github.com/caoccao/Javet/discussions/92">Which mode do you prefer?</a>)</p></li>
<li><p>Polyfill V8 mode with <a class="reference external" href="https://github.com/caoccao/Javenode">Javenode</a></p></li>
<li><p>V8 API exposure in JVM</p></li>
<li><p>JavaScript and Java interop</p></li>
<li><p>Native BigInt and Date</p></li>
<li><p>Javet engine pool</p></li>
<li><p>Easy spring integration</p></li>
<li><p>Live debug with Chrome DevTools</p></li>
<li><p>AST analysis with <a class="reference external" href="https://github.com/caoccao/swc4j">swc4j</a></p></li>
<li><p>JS, TS, JSX, TSX transformation and transpilation with <a class="reference external" href="https://github.com/caoccao/swc4j">swc4j</a></p></li>
<li><p>Live interaction with <a class="reference external" href="https://github.com/caoccao/JavetShell">JavetShell</a></p></li>
</ul>
</section>
<section id="quick-start">
<h1>Quick Start<a class="headerlink" href="#quick-start" title="Link to this heading">¶</a></h1>
<section id="dependency">
<h2>Dependency<a class="headerlink" href="#dependency" title="Link to this heading">¶</a></h2>
<section id="maven">
<h3>Maven<a class="headerlink" href="#maven" title="Link to this heading">¶</a></h3>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="cm">&lt;!-- Linux and Windows (x86_64) --&gt;</span>
<span class="nt">&lt;dependency&gt;</span>
<span class="w">    </span><span class="nt">&lt;groupId&gt;</span>com.caoccao.javet<span class="nt">&lt;/groupId&gt;</span>
<span class="w">    </span><span class="nt">&lt;artifactId&gt;</span>javet<span class="nt">&lt;/artifactId&gt;</span>
<span class="w">    </span><span class="nt">&lt;version&gt;</span>3.1.3<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;/dependency&gt;</span>

<span class="cm">&lt;!-- Linux (arm64) --&gt;</span>
<span class="nt">&lt;dependency&gt;</span>
<span class="w">    </span><span class="nt">&lt;groupId&gt;</span>com.caoccao.javet<span class="nt">&lt;/groupId&gt;</span>
<span class="w">    </span><span class="nt">&lt;artifactId&gt;</span>javet-linux-arm64<span class="nt">&lt;/artifactId&gt;</span>
<span class="w">    </span><span class="nt">&lt;version&gt;</span>3.1.3<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;/dependency&gt;</span>

<span class="cm">&lt;!-- Mac OS (x86_64 and arm64) --&gt;</span>
<span class="nt">&lt;dependency&gt;</span>
<span class="w">    </span><span class="nt">&lt;groupId&gt;</span>com.caoccao.javet<span class="nt">&lt;/groupId&gt;</span>
<span class="w">    </span><span class="nt">&lt;artifactId&gt;</span>javet-macos<span class="nt">&lt;/artifactId&gt;</span>
<span class="w">    </span><span class="nt">&lt;version&gt;</span>3.1.3<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;/dependency&gt;</span>
</pre></div>
</div>
</section>
<section id="gradle-kotlin-dsl">
<h3>Gradle Kotlin DSL<a class="headerlink" href="#gradle-kotlin-dsl" title="Link to this heading">¶</a></h3>
<div class="highlight-kotlin notranslate"><div class="highlight"><pre><span></span><span class="n">implementation</span><span class="p">(</span><span class="s">&quot;com.caoccao.javet:javet:3.1.3&quot;</span><span class="p">)</span><span class="w"> </span><span class="c1">// Linux and Windows (x86_64)</span>
<span class="n">implementation</span><span class="p">(</span><span class="s">&quot;com.caoccao.javet:javet-linux-arm64:3.1.3&quot;</span><span class="p">)</span><span class="w"> </span><span class="c1">// Linux (arm64)</span>
<span class="n">implementation</span><span class="p">(</span><span class="s">&quot;com.caoccao.javet:javet-macos:3.1.3&quot;</span><span class="p">)</span><span class="w"> </span><span class="c1">// Mac OS (x86_64 and arm64)</span>
<span class="n">implementation</span><span class="p">(</span><span class="s">&quot;com.caoccao.javet:javet-android-node:3.1.3&quot;</span><span class="p">)</span><span class="w"> </span><span class="c1">// Android Node (arm, arm64, x86 and x86_64)</span>
<span class="n">implementation</span><span class="p">(</span><span class="s">&quot;com.caoccao.javet:javet-android-v8:3.1.3&quot;</span><span class="p">)</span><span class="w"> </span><span class="c1">// Android V8 (arm, arm64, x86 and x86_64)</span>
</pre></div>
</div>
</section>
<section id="gradle-groovy-dsl">
<h3>Gradle Groovy DSL<a class="headerlink" href="#gradle-groovy-dsl" title="Link to this heading">¶</a></h3>
<div class="highlight-groovy notranslate"><div class="highlight"><pre><span></span><span class="n">implementation</span><span class="w"> </span><span class="s1">&#39;com.caoccao.javet:javet:3.1.3&#39;</span><span class="w"> </span><span class="c1">// Linux and Windows (x86_64)</span>
<span class="n">implementation</span><span class="w"> </span><span class="s1">&#39;com.caoccao.javet:javet-linux-arm64:3.1.3&#39;</span><span class="w"> </span><span class="c1">// Linux (arm64)</span>
<span class="n">implementation</span><span class="w"> </span><span class="s1">&#39;com.caoccao.javet:javet-macos:3.1.3&#39;</span><span class="w"> </span><span class="c1">// Mac OS (x86_64 and arm64)</span>
<span class="n">implementation</span><span class="w"> </span><span class="s1">&#39;com.caoccao.javet:javet-android-node:3.1.3&#39;</span><span class="w"> </span><span class="c1">// Android Node (arm, arm64, x86 and x86_64)</span>
<span class="n">implementation</span><span class="w"> </span><span class="s1">&#39;com.caoccao.javet:javet-android-v8:3.1.3&#39;</span><span class="w"> </span><span class="c1">// Android V8 (arm, arm64, x86 and x86_64)</span>
</pre></div>
</div>
</section>
</section>
<section id="hello-javet">
<h2>Hello Javet<a class="headerlink" href="#hello-javet" title="Link to this heading">¶</a></h2>
<div class="highlight-java notranslate"><div class="highlight"><pre><span></span><span class="c1">// Node.js Mode</span>
<span class="k">try</span><span class="w"> </span><span class="p">(</span><span class="n">V8Runtime</span><span class="w"> </span><span class="n">v8Runtime</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">V8Host</span><span class="p">.</span><span class="na">getNodeInstance</span><span class="p">().</span><span class="na">createV8Runtime</span><span class="p">())</span><span class="w"> </span><span class="p">{</span>
<span class="w">    </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">v8Runtime</span><span class="p">.</span><span class="na">getExecutor</span><span class="p">(</span><span class="s">&quot;&#39;Hello Javet&#39;&quot;</span><span class="p">).</span><span class="na">executeString</span><span class="p">());</span>
<span class="p">}</span>

<span class="c1">// V8 Mode</span>
<span class="k">try</span><span class="w"> </span><span class="p">(</span><span class="n">V8Runtime</span><span class="w"> </span><span class="n">v8Runtime</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">V8Host</span><span class="p">.</span><span class="na">getV8Instance</span><span class="p">().</span><span class="na">createV8Runtime</span><span class="p">())</span><span class="w"> </span><span class="p">{</span>
<span class="w">    </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">v8Runtime</span><span class="p">.</span><span class="na">getExecutor</span><span class="p">(</span><span class="s">&quot;&#39;Hello Javet&#39;&quot;</span><span class="p">).</span><span class="na">executeString</span><span class="p">());</span>
<span class="p">}</span>
</pre></div>
</div>
</section>
</section>
<section id="sponsors">
<h1>Sponsors<a class="headerlink" href="#sponsors" title="Link to this heading">¶</a></h1>
<p><a class="reference external" href="https://www.hivemq.com/">HiveMQ</a></p>
</section>
<section id="license">
<h1>License<a class="headerlink" href="#license" title="Link to this heading">¶</a></h1>
<p><a class="reference external" href="https://github.com/caoccao/Javet/blob/main/LICENSE">APACHE LICENSE, VERSION 2.0</a></p>
</section>
<section id="blog">
<h1>Blog<a class="headerlink" href="#blog" title="Link to this heading">¶</a></h1>
<ul class="simple">
<li><p><a class="reference external" href="https://blog.caoccao.com/performance-comparison-of-graaljs-javet-and-nashorn-7bae6925826a">Performance Comparison of GraalJS, Javet and Nashorn</a></p></li>
<li><p><a class="reference external" href="https://blog.caoccao.com/how-to-elegantly-expose-jsonnode-in-v8-638aff9da549">How to Elegantly Expose JsonNode in V8</a></p></li>
<li><p><a class="reference external" href="https://blog.caoccao.com/how-to-compromise-v8-on-jvm-ceb385572461">How to Compromise V8 on JVM</a></p></li>
<li><p><a class="reference external" href="https://blog.caoccao.com/is-typescript-a-good-choice-for-a-script-engine-01fe69921ace">Is TypeScript a Good Choice for a Script Engine?</a></p></li>
<li><p><a class="reference external" href="https://blog.caoccao.com/run-typescript-directly-in-java-82b7003b44b8">Run TypeScript Directly in Java</a></p></li>
</ul>
</section>
<section id="documents">
<h1>Documents<a class="headerlink" href="#documents" title="Link to this heading">¶</a></h1>
<ul class="simple">
<li><p><a class="reference external" href="https://docs.google.com/presentation/d/1lQ8xIHuywuE0ydqm2w6xq8OeQZO_WeTLYXW9bNflQb8/">Javet Intro</a></p></li>
</ul>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="tutorial/index.html">Tutorial</a><ul>
<li class="toctree-l2"><a class="reference internal" href="tutorial/basic/index.html">Basic</a></li>
<li class="toctree-l2"><a class="reference internal" href="tutorial/advanced/index.html">Advanced</a></li>
<li class="toctree-l2"><a class="reference internal" href="tutorial/migration_guides/index.html">Migration Guides</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="reference/index.html">Reference</a><ul>
<li class="toctree-l2"><a class="reference internal" href="reference/javadoc/index.html">API Reference</a></li>
<li class="toctree-l2"><a class="reference internal" href="reference/v8_values/index.html">V8 Values</a></li>
<li class="toctree-l2"><a class="reference internal" href="reference/converters/index.html">Converters</a></li>
<li class="toctree-l2"><a class="reference internal" href="reference/resource_management/index.html">Resource Management</a></li>
<li class="toctree-l2"><a class="reference internal" href="reference/troubleshooting/index.html">Troubleshooting</a></li>
<li class="toctree-l2"><a class="reference internal" href="reference/tips/index.html">Tips</a></li>
<li class="toctree-l2"><a class="reference internal" href="reference/todo_list.html">TODO List</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="release_notes/index.html">Release Notes</a><ul>
<li class="toctree-l2"><a class="reference internal" href="release_notes/release_notes_3_1.html">Release Notes 3.1.x</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="faq/index.html">FAQ</a><ul>
<li class="toctree-l2"><a class="reference internal" href="faq/background/index.html">Background</a></li>
<li class="toctree-l2"><a class="reference internal" href="faq/development/index.html">Development</a></li>
<li class="toctree-l2"><a class="reference internal" href="faq/environment/index.html">Environment</a></li>
<li class="toctree-l2"><a class="reference internal" href="faq/troubleshooting/index.html">Troubleshooting</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="development/index.html">Development</a><ul>
<li class="toctree-l2"><a class="reference internal" href="development/tools.html">Development Tools</a></li>
<li class="toctree-l2"><a class="reference internal" href="development/build.html">Build Javet</a></li>
<li class="toctree-l2"><a class="reference internal" href="development/test.html">Test Javet</a></li>
<li class="toctree-l2"><a class="reference internal" href="development/design.html">Javet Design</a></li>
<li class="toctree-l2"><a class="reference internal" href="development/performance.html">Javet Performance</a></li>
<li class="toctree-l2"><a class="reference internal" href="development/debug_with_chrome_developer_tools.html">Debug with Chrome Developer Tools</a></li>
</ul>
</li>
</ul>
</div>
</section>

        </article>
      </div>
      <footer>
        
        <div class="related-pages">
          <a class="next-page" href="tutorial/index.html">
              <div class="page-info">
                <div class="context">
                  <span>Next</span>
                </div>
                <div class="title">Tutorial</div>
              </div>
              <svg class="furo-related-icon"><use href="#svg-arrow-right"></use></svg>
            </a>
          
        </div>
        <div class="bottom-of-page">
          <div class="left-details">
            <div class="copyright">
                Copyright &#169; 2021-2024. caoccao.com Sam Cao
            </div>
            Made with 
            <a href="https://github.com/pradyunsg/furo">Furo</a>
            
          </div>
          <div class="right-details">
            
          </div>
        </div>
        
      </footer>
    </div>
    <aside class="toc-drawer no-toc">
      
      
      
    </aside>
  </div>
</div><script src="_static/documentation_options.js?v=f5d3a522"></script>
    <script src="_static/doctools.js?v=9a2dae69"></script>
    <script src="_static/sphinx_highlight.js?v=dc90522c"></script>
    <script src="_static/scripts/furo.js?v=32e29ea5"></script>
    <script src="_static/tabs.js?v=3ee01567"></script>
    </body>
</html>